﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Negocio;
using Entidad;
using System.Globalization;
using SpreadsheetLight;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Spreadsheet;
using System.IO;
using System.Configuration;


namespace WebProveedores
{
    public partial class AdminUsuarios : System.Web.UI.Page
    {
        public EnUsuario objUsuario = new EnUsuario();
        public List<EnUsuario> objLst = new List<EnUsuario>();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
              
                if (Session["usuario"] == null)
                {
                    Response.Redirect("LoginIntra.aspx");
                }
                else {
                    objUsuario = (EnUsuario)Session["usuario"];
                    if (!objUsuario.tipo.Equals("1"))// no puede entrar a esta página. NO es admin
                    {
                        Response.Redirect("Default.aspx");
                    }
                    else {//SI es admin
                        //cargo datos de pantalla
                        cargarDatos();
                    }
                }
            }
        }
        private  void cargarDatos()
        {
            NeUsuario neu = new NeUsuario();

            objLst = neu.getLstUsuarios();
            gvUsuario.DataSource = objLst;
            gvUsuario.DataBind();
            Session["lstUsuarios"] = objLst;
            //
            txbUsuario.Enabled = false;
            txbNombre.Enabled = false;
            txtApellido.Enabled = false;
            chbEsAdmin.Enabled = false;
        }
        public void UsuarioGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
        {

            // If multiple ButtonField column fields are used, use the
            // CommandName property to determine which button was clicked.
            int index = -1;
            List<EnUsuario> lstUsuarios = (List<EnUsuario>)Session["lstUsuarios"];
            if (e.CommandName == "Select")
            {
                index = Convert.ToInt32(e.CommandArgument);
                objUsuario = lstUsuarios[index];
                txbNombre.Text = objUsuario.nombre;
                txbUsuario.Text = objUsuario.usuario;
                txtApellido.Text = objUsuario.apellido;

                if (objUsuario.tipo.Equals("1"))
                {
                    chbEsAdmin.Checked = true;
                }
                else
                {
                    chbEsAdmin.Checked = false;
                }

                Session["objUsuario"] = objUsuario;

                Session["opera"] = "upd";
                txbUsuario.ReadOnly = true;
                btnGrabar.Enabled = true;

                txbNombre.Enabled = true;
                txtApellido.Enabled = true;
                chbEsAdmin.Enabled = true;
                btnGrabar.Enabled = true;
            }

        }

        protected void btnGrabar_Click(object sender, EventArgs e)
        {
            operaciones((String)Session["opera"]);
        }

        protected void btnNuevo_Click(object sender, EventArgs e)
        {
            Session["opera"] = "new";
            txbUsuario.ReadOnly = false;
            txbUsuario.Enabled = true;
            txbNombre.Enabled = true;
            txtApellido.Enabled = true;
            chbEsAdmin.Enabled = true;
            btnGrabar.Enabled = true;
        }

        private void operaciones(String opera)
        {
            NeUsuario neU = new NeUsuario();
            int ret = 0;
            EnUsuario usu = new EnUsuario();
            usu.usuario = txbUsuario.Text;
            usu.nombre = txbNombre.Text;
            usu.apellido = txtApellido.Text;
            if (chbEsAdmin.Checked)
            {
                usu.tipo = "1";
            }
            else {
                usu.tipo = "0";
            }
            
            

            switch (opera)
            {
                case "new":

                    ret = neU.setUsuario(usu);
                    break;
                case "upd":
                    ret = neU.updUsuario(usu);
                    break;
                case "del":
                    ret = neU.delUsuario(usu.usuario);
                    break;
                default:
                    
                    break;
            }

            if (ret == 0)
            {

                ClientScript.RegisterStartupScript(this.GetType(), "Resultado", "alert('" + "Usuario creado." + "');", true);
                Response.Redirect("AdminUsuarios.aspx");
            }
            else
            {
                ClientScript.RegisterStartupScript(this.GetType(), "Resultado", "alert('" + "Error al crear." + "');", true);
            }

        }

        protected void btnCancelar_Click(object sender, EventArgs e)
        {
            txbUsuario.Text = "";
            txbNombre.Text = "";
            txtApellido.Text = "";
            chbEsAdmin.Checked = false;

            txbUsuario.ReadOnly = true;
            txbUsuario.Enabled = false;
            txbNombre.Enabled = false;
            txtApellido.Enabled = false;
            chbEsAdmin.Enabled = false;

            btnGrabar.Enabled = false;
        }

        protected void Eliminar_Click(object sender, EventArgs e)
        {
            operaciones("del");

        }

    }
}